// components/custom01/custom01.js
// 如果需要再组件中使用 Store 中的数据和方法

import { ComponentWithStore } from 'mobx-miniprogram-bindings'
import { numStore } from '../../stores/numstore'

// 需要使用 ComponentWithStore 方法将 Component 方法进行替换
// 注意：在从Store对象中引入数据和方法以后
// 如果是数据，会被注入到data对象中
// 如果是方法，会被注入到methods对象中
ComponentWithStore({
    // 用来配置当前组件需要与哪些Store进行关联
    storeBindings: {
        store: numStore,

        // fields 和 actions 有两种写法，数据写法 和 对象写法
        // fields: [ 'numA', 'numB', 'sum' ],
        // actions: [ 'update' ]

        // 对象写法
        fields: {
            // 如果fields改成了对象写法，数据也有两种写法
            // 映射形式，需要指定data中哪些字段来源于store，以及在store中的名字是什么
            // numA: 'numA',
            // numB: 'numB',
            // sum: 'sum'

            // 函数形式
            // key: data 中哪些字段来源于 store
            // value：函数内部需要返回对应store数据的值
            // 自定义属性，如果对属性进行了自定义，模板中需要使用自定义以后的属性
            numA: () => numStore.numA,
            numB: () => numStore.numB,
            sum: () => numStore.sum,
        },
        actions: {
            updateData: "update"
        }
    },


})